修改门禁和电梯卡实例之ACR122U的控制指令和参数
本文为看雪论坛优秀文章
看雪论坛作者ID:letum
社区的门禁兼电梯卡50元一张,我们一家3口人就150元,过阵子家里老爷子来我这里的话再给他搞一张就得花200元了,太贵了吧!想起来柜子里有一个吃灰很久的ACR122U读卡器,遂祭出来分析了一下电梯卡。
还以为是啥高科技CPU卡呢,原来不是,就是一张标准的MIFARE卡。全卡共有16个扇区,每扇区4个块,每块16个字节。每个扇区都有两个密码,全卡共有32个密码。想访问哪个扇区,就必须使用与其对应的密码。
本段内容是道听途说,不知道真假:这种卡加密使用的是Crypto1算法。但是这种加密方式早在2008年就被亨里克和卡尔斯滕哥俩联手攻破了。
这哥俩一个是德国计算机科研人员,一个是美国弗吉尼亚大学计算机专业在读博士。我们可以直接使用他们哥俩在第24届黑客大会上公布的资料来破解M1卡。
找到一个别人写的破解程序,据说原理就是上面那段我道听途说的消息。然而这个破解程序很好用,点了“开始破解”按钮之后几十秒,滴的一声,电梯卡所有扇区的数据全都Dump出来了。这个程序长这个样子:
晚上静下心来观察观察这些数据,找到了这样一处数据:“13 0A 1F 00 18 00 00 12 08 1B 0A 11”(图片光标所在蓝色行)。
把130A1F0018逐字节转成十进制,就是1910310024,这不就是19年10月31日24点到期嘛(我们小区物业费每年10月到期,小区居民都知道)。
后面的12081B0A11转成十进制表示就是18年08月27日10:17,这就是我去年交物业费时,物业给我更新电梯卡数据的时间嘛。如果直接把130A改成630C有效期不就到了2099年12月了嘛,看起来So easy。
然后想分析一下楼层控制(我的卡只能刷开地下车库、一楼和我所在楼层,电梯里无法按亮其他楼层按钮),结果没分析出来,包含我楼层数字的地方太多了。算了,洗洗睡觉。
此时发现,我每改一个数据去试验,就得把全卡数据整体写入一次,可我只想写某个块,并不需要全卡重写。有没有可以给出目标块的位置,直接写该块的软件呢?
找了找,都是收费的,最友(sheng)好(qian)的一款是读取目标块免费,写入目标块就得交费注册的,如图,不注册的话,写卡按钮灰色的,如下图:
SDK里提供的模块已经封装好了各种操作它的函数,直接用就可以了。
实质上就是需要写一个通讯程序,发送一串二进制数据过去,读卡器响应之后返回一串二进制数据回来,并不难。
读卡器载入秘钥之后还要和卡内目标块的秘钥进行比对认证,如果秘钥正确才能对目标块进行读写哦。
例如发送“FF 88 00 04 60 00”,FF88是命令,00是参数1,04是参数2,60是秘钥类型,00是秘钥序号。
有时间我再继续更新。
看雪ID:letum
https://bbs.pediy.com/user-74186.htm
推荐文章++++